/**************************************************************************
 *  创建者：        hualei
 *  开始时间：   2018.06.23
 *  copyright:  (C) 深圳市华友高科有限公司
 *  修改说明：  (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 *
 ***************************************************************************
 *   TCP_START TCP开始指令属性编辑视窗类
 *
 ***************************************************************************/
#ifndef TCPSTARTINSTRUCTIONVIEW_H
#define TCPSTARTINSTRUCTIONVIEW_H

#include <QWidget>
#include "tcpstartinstructionview_global.h"
#include <QTranslator>
#include <QVector>
#include "instructionEnum.h"

class ProgramView;

namespace Ui {
class TCPStartInstructionView;
}

///**
// * @brief The EM_TCP_START_SERVER_CLIENT_TYPE enum      TCP 总线类型
// */
//enum EM_TCP_START_SERVER_CLIENT_TYPE
//{
//    E_TCP_START_SERVER,     // 服务器端
//    E_TCP_START_CLIENT      // 客户端
//};

/**
 * @brief The TCPStartInstructionView class     TCP_START TCP开始指令属性编辑视窗类
 */
class TCPSTARTINSTRUCTIONVIEWSHARE_EXPORT TCPStartInstructionView : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief TCPStartInstructionView       构造函数
     * @param parent
     */
    explicit TCPStartInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief getInput              获取界面输入数据
     */
    void getInput();

    /**
     * @brief updateView            将数据更新显示在属性编辑界面
     */
    void updateView();

    /**
     * @brief changeLanguage         更改语言
     * @param language                语言编号
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

public:

    /**
     * @brief programView           指令程序编辑主视图对象
     */
    ProgramView *programView;

    /**
     * @brief instructionOut         指令属性编辑完成的指令字符串
     */
    QString instructionOut;

    /**
     * @brief tcpStartServerIpVec       服务器ip
     */
    QVector <int> tcpStartServerIpVec;

    /**
     * @brief tcpStartClientIpVec       客户端IP
     */
    QVector <int> tcpStartClientIpVec;

    /**
     * @brief tcpStartPort              端口号
     */
    int tcpStartPort;

    /**
     * @brief tcpStartType          TCP总线类型
     */
    EM_TCP_START_SERVER_CLIENT_TYPE tcpStartType;

    /**
     * @brief jmpLabelValue         跳转标签号
     */
    int jmpLabelValue;

    /**
     * @brief noteStr               注释
     */
    QString noteStr;

signals:
    /**
     * @brief finishEditInstructionSignal               指令属性编辑完成信号
     */
    void finishEditInstructionSignal();

    /**
     * @brief saveInstructionSignal                     保存编辑完成的指令信号
     * @param instructionStr                             编辑完成的指令
     */
    void saveInstructionSignal(QString instructionStr);

    /**
     * @brief cleanNoteSignal               清除注释信号
     */
    void cleanNoteSignal();

private slots:
    /**
     * @brief on_CLIENT_radioButton_clicked             选择Client客户端响应槽函数
     */
    void on_CLIENT_radioButton_clicked();

    /**
     * @brief on_SERVER_radioButton_clicked             选择server服务器端响应槽函数
     */
    void on_SERVER_radioButton_clicked();

    /**
     * @brief on_clearNote_Btn_clicked                  清除注释响应槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked                    返回上一页响应槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_save_Btn_clicked                       保存指令响应槽函数
     */
    void on_save_Btn_clicked();

private:
    Ui::TCPStartInstructionView *ui;

    /**
     * @brief translator                翻译
     */
    QTranslator translator;

    /**
     * @brief ip1           临时变量
     */
    int ip1,ip2,ip3,ip4;

};

#endif // TCPSTARTINSTRUCTIONVIEW_H
